package com.example.springboot;

import com.example.springboot.component.HelloComponent;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * 程序入口。
 *
 * <p> springboot简单构建， pom中只需要添加spring-boot-starter项目。
 *
 * <p> spring-boot-starter负责springboot的初始化构建，
 * spring-boot-starter-test负责构建测试组件，
 * spring-boot-configuration-processor负责读取配置文件的属性。
 *
 * <p> 测试了spring默认配置文件读取及自定义文件读取，以及读取顺序，详见 test -> java ->  ConfigurationTest
 * <p>
 * <p>
 * @author Zhang.Z
 * @version 2025-09-19
 */
@SpringBootApplication
public class ConfApplication {

    public static void main(String[] args) {
        System.out.println("初始化。。。");
        final ConfigurableApplicationContext context = SpringApplication.run(ConfApplication.class, args);
        //从容器中获取注入的bean，并调用其方法
        final HelloComponent bean = (HelloComponent) context.getBean("helloComponent");
        bean.test();
        System.out.println("执行结束。。。");
    }
}
